Method and apparatus for soft limits for advertisement serving

ABSTRACT

An approach is provided for caching advertisements on a device according to soft limits. Caching of an advertisement is caused, at least in part at the device. A soft limit is determined to be associated with and advertisement. The soft limit specifies when to cache one or more other advertisements. Presentation of the advertisement, the other advertisements, or a combination thereof is caused, at least in part, based on validity information associated with the advertisement.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.12/732,506, filed Mar. 26, 2010, entitled “Method and Apparatus for SoftLimits for Advertising Serving,” the entirety of which is incorporatedherein by reference.

BACKGROUND

Service providers and device manufacturers (e.g., wireless, cellular,etc.) are continually challenged to deliver value and convenience toconsumers by, for example, providing compelling network services. Thesenetwork services may generate revenue for the network services bypresenting advertisements to users of the services. Examples of networkservices include messaging services, maps and navigation services,social networking services, media services, purchasing services, gamingservices, and the like. Advertisements can be positioned in the samescreen as an active service presented to a user and/or as in a separateview before, after, or during the use of the service. Althoughadvertisements used in conjunction with these services have becomeincreasingly popular, device manufacturers and service providers facesignificant technical challenges to increasing the effectiveness ofadvertisements while balancing the effectiveness with devicecapabilities and user experience. For example, it may be ineffective topresent a single ad to a user for weeks or months at a time.

SOME EXAMPLE EMBODIMENTS

Therefore, there is a need for an approach for utilizing soft limits foradvertisement serving. In certain embodiments, a soft limit is a limit(e.g., a time since the advertisement was loaded to a cache of a deviceor number of impressions the advertisement has been shown) that triggersa request to fetch additional advertisements from a server, but does notmake invalid the advertisement stored in the cache that corresponds tothe soft limit.

According to one embodiment, a method comprises causing, at least inpart, caching of an advertisement at a device. The method also comprisesdetermining a soft limit associated with the advertisement. The softlimit specifies when to request one or more other advertisements to bedownloaded to the cache. The method further comprises causing, at leastin part, the presentation of the advertisement, the otheradvertisements, or a combination thereof based on validity informationassociated with the advertisement. A different soft limit may beassociated to each advertisement, or a different soft limit may beassociated to each advertisement category (e.g. sponsorship, guaranteed,remnant, house), or one soft limit may be used for all ads in cache.

According to another embodiment, an apparatus comprising at least oneprocessor, and at least one memory including computer program code, theat least one memory and the computer program code configured to, withthe at least one processor, cause, at least in part, the apparatus tocause, at least in part, caching of an advertisement at a device. Theapparatus is also caused to determine a soft limit associated with theadvertisement. The soft limit specifies when to request one or moreother advertisements to be downloaded to the cache. The apparatusfurther causes, at least in part, the presentation of the advertisement,the other advertisements, or a combination thereof based on validityinformation associated with the advertisement.

According to another embodiment, a computer-readable storage mediumcarrying one or more sequences of one or more instructions which, whenexecuted by one or more processors, cause, at least in part, anapparatus to cause, at least in part, caching of an advertisement at adevice. The apparatus is also caused to determine a soft limitassociated with the advertisement. The soft limit specifies when torequest one or more other advertisements to be downloaded to the cache.The apparatus further causes, at least in part, the presentation of theadvertisement, the other advertisements, or a combination thereof basedon validity information associated with the advertisement.

According to another embodiment, an apparatus comprises means forcausing, at least in part, caching of an advertisement at a device. Theapparatus also comprises means for determining a soft limit associatedwith the advertisement. The soft limit specifies when to request one ormore other advertisements to be downloaded to the cache. The apparatusfurther comprises means for causing, at least in part, the presentationof the advertisement, the other advertisements, or a combination thereofbased on validity information associated with the advertisement.

According to one embodiment, a method comprises determining a soft limitassociated with an advertisement. The method also comprises causing, atleast in part, transmission of the advertisement and associated softlimit to a device. The soft limit specifies when to request one or moreother advertisements to be downloaded.

According to another embodiment, an apparatus comprising at least oneprocessor, and at least one memory including computer program code, theat least one memory and the computer program code configured to, withthe at least one processor, cause, at least in part, the apparatus todetermine a soft limit associated with an advertisement. The apparatusis also caused to cause, at least in part, transmission of theadvertisement and associated soft limit to a device. The soft limitspecifies when to request one or more other advertisements to bedownloaded.

According to another embodiment, a computer-readable storage mediumcarrying one or more sequences of one or more instructions which, whenexecuted by one or more processors, cause, at least in part, anapparatus to determine a soft limit associated with an advertisement.The apparatus is also caused to cause, at least in part, transmission ofthe advertisement and associated soft limit to a device. The soft limitspecifies when to request one or more other advertisements to bedownloaded.

According to another embodiment, an apparatus comprises means fordetermining a soft limit associated with an advertisement. The apparatusalso comprises means for causing, at least in part, transmission of theadvertisement and associated soft limit to a device. The soft limitspecifies when to request one or more other advertisements to bedownloaded.

According to another embodiment, an advertising platform or ad servercomprising means for delivering ads to an ad engine, means fordetermining a soft limit associated with the advertisement stored incache, wherein the soft limit specifies when to request one or moreother advertisements to be downloaded to the cache, and means fortransferring that soft limit to the ad engine.

According to another embodiment, an advertising engine comprising meansfor receiving advertisements and means for enforcing a soft limitassociated with the advertisement. The soft limit specifies when torequest one or more other advertisements to be downloaded to the cache.The advertising engine further comprises means to serve advertisementspreviously stored in cache after a soft limit is reached. Theadvertising engine further comprises means to determine said soft limitfrom its default configuration, or from contextual information, or frominformation received from an advertising platform or service platform.

According to yet another embodiment, a method wherein advertisements arestored in a cache and may be served multiple times from the cache. Themethod comprises determining at least one soft limit associated with theadvertisements stored in cache, wherein the soft limit specifies when torequest one or more other advertisements to be downloaded to the cache.The method further comprises that the advertisements previously storedin cache are not deleted and may still be served after a soft limit isreached.

Still other aspects, features, and advantages of the invention arereadily apparent from the following detailed description, simply byillustrating a number of particular embodiments and implementations,including the best mode contemplated for carrying out the invention. Theinvention is also capable of other and different embodiments, and itsseveral details can be modified in various obvious respects, all withoutdeparting from the spirit and scope of the invention. For example, thead engine may be implemented as part of a mobile device or part of aproxy (e.g., proxy browser) in a network. Accordingly, the drawings anddescription are to be regarded as illustrative in nature, and not asrestrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments of the invention are illustrated by way of example, andnot by way of limitation, in the figures of the accompanying drawings:

FIG. 1 is a diagram of a system capable of serving advertisements to auser using soft limits, according to one embodiment;

FIG. 2 is a diagram of the components of user equipment associated withpresenting advertisements to a user, according to one embodiment;

FIG. 3 is a diagram of the components of an advertising platform,according to one embodiment;

FIG. 4 is a flowchart of a process for caching advertisements on userequipment based on soft limits, according to one embodiment;

FIG. 5 is a flowchart of a process for determining soft limits based oncontextual information, according to one embodiment;

FIG. 6 is a flowchart of a process for determining soft limits based oncategories, according to one embodiment;

FIG. 7 is a flowchart of a process for determining soft limits based onadvertiser criteria, according to one embodiment;

FIGS. 8A-8B are diagrams of example user interfaces utilized in theprocesses of FIGS. 4-7, according to various embodiments;

FIG. 9 is a diagram of hardware that can be used to implement anembodiment of the invention;

FIG. 10 is a diagram of a chip set that can be used to implement anembodiment of the invention; and

FIG. 11 is a diagram of a mobile terminal (e.g., handset) that can beused to implement an embodiment of the invention.

DESCRIPTION OF SOME EMBODIMENTS

Examples of a method, apparatus, and computer program for servingadvertisements according to soft limits are disclosed. In the followingdescription, for the purposes of explanation, numerous specific detailsare set forth in order to provide a thorough understanding of theembodiments of the invention. It is apparent, however, to one skilled inthe art that the embodiments of the invention may be practiced withoutthese specific details or with an equivalent arrangement. In otherinstances, well-known structures and devices are shown in block diagramform in order to avoid unnecessarily obscuring the embodiments of theinvention.

FIG. 1 is a diagram of a system capable of serving advertisements to auser using soft limits, according to one embodiment. As notedpreviously, service providers and device manufacturers may generaterevenue or otherwise promote additional services, features, products,etc. by presenting advertisements on user devices. Advertisementsgenerally may be presented in association with various applicationsand/or services such as messaging, navigation, maps, social networking,media (e.g., video, audio, images, etc.), games, stores, etc. Forexample, a messaging application may display, in a portion of agraphical user interface, the advertisement in parallel with presentingthe messaging features. The advertisements can be stored in a cache ormemory of a device executing applications to allow the device to quicklyand conveniently provide the advertisements to users with almost nodelays (e.g., 100 ms) and serve advertisements consistently on-line andoff-line.

Advertising engines can retrieve advertisements from such caches topresent advertisements with one or more applications. In certainembodiments, an advertising engine is a program and/or hardware residenton a device that can retrieve advertisements from an advertising serverand control presentation of the advertisements. The advertising enginecan fetch advertisements from an advertising server via an ApplicationProgramming Interface (API) to store in the cache for presentation via,for instance, the applications. By caching advertisements, theadvertising engine can quickly deliver advertisements to theapplications while the device running the application is on-line, andthen can present the advertisements at any later time whether the deviceis on-line or off-line. Further, caching advertisements allows foroptimizations of device usage because the device need not request anadvertisement from the advertising server each time an advertisement isneeded. Thus, communications costs (e.g., cellular radio, wireless localarea network (WLAN), LAN, etc.) are lowered for both the device and thecommunication network providing advertisements to the device. Forexample, a wireless provider (e.g., American Telephone and Telegraph®)may offer a flat fee to users for providing data to devices.

However, caching advertisements on the device can lead to variousefficiency and/or user experience problems. For example, user may wishto see a variety of advertisements instead of the same advertisementsover and over. Further, service providers may want differentadvertisements to be shown to users because some advertisements may bemore effective on a user than others. Additionally, there often is atrade-off between communications costs of retrieving new advertisementsand the user experience/advertising effectiveness (e.g., based on thetype of radio utilized by the device, the monetary costs of datacommunications for the user, diversity of advertisements available onthe advertising server, the importance of the user to preserve userexperience, advertisement revenue maximization, etc.). An option to notfetch any new advertisements while there are valid advertisements incache would lead to very optimal communications costs (e.g., datacommunications and/or device battery use), but the user may be presentedthe same advertisements for an extended period of time (e.g., weeks oreven months). In certain embodiments, an advertisement is associatedwith a validity time (e.g., a particular date and time when theadvertisement expires). In addition or alternatively, the advertisementmay be limited based on an impression limit (e.g., after theadvertisement is shown to the user a predetermined number of times orimpressions, the advertisement will no longer shown to the user).

In contrast, an option to fetch advertisements after each impression ofthe advertisement to the user would allow the advertising engine toconsistently serve new advertisements to the user, and provideadvertisement diversity to the user. However, this would requireadditional communications costs, including the transfer of additionaldata as well as power costs (e.g., for battery operated devices).Historically, determining when to cache advertising information iscontrolled by “hard limits” that set an advertisement validity timeperiod or a maximum number of impressions of an advertisement to serve.In other words, when the hard limit (e.g., based on a validity time ornumber of impressions) for an advertisement is reached, the particularadvertisement expires and is, for instance, cleared from the cached.When advertisements expire, the advertising engine can then retrieveadditional advertisements. However, because fetching of newadvertisements may require use of the communication network, theadvertising engine may be caused to attempt to fetch advertisements atan inopportune time (e.g., when a battery of the device is low, when theuser is roaming, when the user does not have access to a communicationnetwork, etc.).

To address this problem, a system 100 of FIG. 1 introduces thecapability to provide advertisements to a user utilizing soft limits. Incertain embodiments, a “soft limit” is a parameter set to initiatefetching of additional advertisements and storing them in the cache,when the soft limit is met. As with a hard limit, the soft limit can bebased, for instance, on a validity time and/or number of impressions. Itis contemplated that any other thresholds or criteria (e.g., whether theuser has responded to the advertisement, whether the advertised productor service is still available, etc.) can be used as the soft limit. Inone embodiment, the system 100 can set a soft limit for a particularadvertisement and then begins to monitor progress towards that limit. Onreaching the limit (e.g., reaching a specific time or number ofimpressions), the system 100 initiates caching of additionaladvertisements at one or more of the user equipment (UEs) 101 a-101 n.It is noted that in the approach described herein, the soft limit canact independently of the any hard limit that may be set for the sameadvertisement. A primary difference between the soft limit describedherein and the traditional hard limit is that the soft limit serves as atrigger for when the UE 101 should begin fetching and caching additionaladvertisements, whereas the hard limit triggers when an advertisementshould no longer be presented. In other words, even when the soft limitis reached, the corresponding advertisement may still be valid if thehard limit is not reached.

During the period of time between reaching the soft limit and reachingthe hard limit, the UE 101 may fetch and cache additional advertisementsso that when the hard limit is reach, additional advertisements would beimmediately available even if the UE 101 is off-line or cannot otherwiseimmediately retrieve additional advertisements (e.g., due to networkcongestion, etc.). In other embodiments, the soft limit enables thesystem 100 to more finely control how often or in what rotation amongother advertisements, a particular advertisement is displayed. Forexample, after one advertisement is displayed for five impressions to aparticular user, the system 100 may begin retrieving otheradvertisements to rotate with the one initial advertisement so that theuser does not become bored of or jaded to the initial advertisement. Inthis example, the initial advertisement remains valid (e.g., because thehard limit for the advertisement has not yet been reached) and can bemixed with the presentation other advertisements until the initialadvertisement is no longer valid.

As previously discussed, UEs 101 a-101 n may execute applications 103such as messaging applications, navigation applications, mapapplications, social networking applications, media applications (e.g.,video, audio, images, etc.), game applications, retail purchasingapplications, etc. which may enable presentation of advertisements. Itis noted that, in certain embodiments, the advertisements may bedisplayed directly (e.g., as a system process) without associated withan application 103. The approach described herein applies to eithersituation or any other situation in which advertisement is presented atthe UE 101. By way of example, an application 103 is a program that canbe executed to perform a task on a UE 101. Some or all of theapplications may obtain services (e.g., network services associated withapplications 103) via a communication network 105 from a serviceplatform 107. To provide revenue for the application maker, UE maker,communication network provider, etc., the applications 103 or the UE 101itself can be associated with an advertising engine 109. The advertisingengine 109 can present advertisements to the user during the executionof the application 103, before execution of the application 103, afterexecution of the application, 103, or a combination thereof. Theadvertising engine 109 can populate an advertisement cache 111 via anadvertising platform 113. As such, the advertising engine 109 requestsone or more advertisements from the advertising platform 113 andreceives one or more advertisements from the advertising platform 113.

Moreover, the advertising engine 109 may utilize the soft limits todetermine when to cache advertising content. As described above, incertain embodiments, a soft limit is a parameter set to initiate causingthe advertising engine 109 to cache additional advertisements from theadvertising platform 113 when the soft limit is met. In certainembodiments, the soft limit is defined in regards to time or a number ofimpressions of an advertisement presented on the UE 101. The number ofimpressions is the number of times a particular advertisement oradvertisements (e.g., a set of advertisements belonging to a singleadvertising campaign) is presented on the UE 101. Further, soft limitscan be static or dynamic. A dynamic soft limit can change based on oneor more soft limit parameters (e.g., contextual information such asavailability of other advertisements, availability of advertisedproducts, etc.) that can be utilized to decrease or increase a softlimit. In certain embodiments, the advertising platform 113 sets softlimits that are applicable at the advertising engine 109. In otherembodiments, the advertising engine 109 may set the soft limits locallyat the UE 101 based on other parameters available at the UE 101 (e.g.,contextual parameters associated with the UE 101 executing theadvertising engine 109) or a default configuration.

The advertising platform 113 may include advertising content that can beupdated via the communication network 105 and/or a campaign managementconsole 115. The campaign management console 115 can be a workstation orother computing device that may be utilized to update the advertisingplatform 113. Further, the campaign management console 115 mayadditionally be utilized to enter input to manually adjust soft limits.For example, a campaign manager can set a soft limit based on contextualinformation, such as advertisement type, advertisement flight,advertisement publisher, roaming status, device radio type utilized,battery status, time, date, location, etc. Use of contextual informationis further detailed in the processes of FIG. 5.

In certain embodiments, the application 103 enables the use of theadvertising engine 109 and advertisement cache 111 to presentadvertisements associated with the application 103. As noted above, theapplication 103 may present the advertisements in a portion of agraphical user interface (GUI) associated with the application 103.Further, the advertising engine 109 may control advertisements providedto and/or presented by the applications 103. As such, the advertisingengine 109 can cause, at least in part, presentation of an advertisementbased on validity information associated with the advertisement. In someembodiments, the validity information is a hard limit associated withwhether or not the advertisement is valid to be presented. Validityinformation may be set based on when the advertisement expires (e.g.,based on a time indicating the validity of the advertising campaign or anumber of impressions sometimes referred as a frequency capping limit).

As shown in FIG. 1, the system 100 comprises a UE 101 havingconnectivity to the service platform 107 and advertising platform 113via the communication network 105. By way of example, the communicationnetwork 105 of system 100 includes one or more networks such as a datanetwork (not shown), a wireless network (not shown), a telephony network(not shown), or any combination thereof. It is contemplated that thedata network may be any local area network (LAN), metropolitan areanetwork (MAN), wide area network (WAN), a public data network (e.g., theInternet), short range wireless network, or any other suitablepacket-switched network, such as a commercially owned, proprietarypacket-switched network, e.g., a proprietary cable or fiber-opticnetwork, and the like, or any combination thereof. In addition, thewireless network may be, for example, a cellular network and may employvarious technologies including enhanced data rates for global evolution(EDGE), general packet radio service (GPRS), global system for mobilecommunications (GSM), Internet protocol multimedia subsystem (IMS),universal mobile telecommunications system (UMTS), etc., as well as anyother suitable wireless medium, e.g., worldwide interoperability formicrowave access (WiMAX), Long Term Evolution (LTE) networks, codedivision multiple access (CDMA), wideband code division multiple access(WCDMA), wireless fidelity (WiFi), wireless LAN (WLAN), Bluetooth®,Internet Protocol (IP) data casting, satellite, mobile ad-hoc network(MANET), and the like, or any combination thereof.

The UE 101 is any type of mobile terminal, fixed terminal, or portableterminal including a mobile handset, station, unit, device, multimediacomputer, multimedia tablet, Internet node, communicator, desktopcomputer, laptop computer, Personal Digital Assistants (PDAs),audio/video player, digital camera/camcorder, positioning device,television receiver, radio broadcast receiver, electronic book device,game device, or any combination thereof. It is also contemplated thatthe UE 101 can support any type of interface to the user (such as“wearable” circuitry, etc.).

By way of example, the UE 101, service platform 107, and advertisingplatform 113 communicate with each other and other components of thecommunication network 105 using well known, new or still developingprotocols. In this context, a protocol includes a set of rules defininghow the network nodes within the communication network 105 interact witheach other based on information sent over the communication links. Theprotocols are effective at different layers of operation within eachnode, from generating and receiving physical signals of various types,to selecting a link for transferring those signals, to the format ofinformation indicated by those signals, to identifying which softwareapplication executing on a computer system sends or receives theinformation. The conceptually different layers of protocols forexchanging information over a network are described in the Open SystemsInterconnection (OSI) Reference Model.

Communications between the network nodes are typically effected byexchanging discrete packets of data. Each packet typically comprises (1)header information associated with a particular protocol, and (2)payload information that follows the header information and containsinformation that may be processed independently of that particularprotocol. In some protocols, the packet includes (3) trailer informationfollowing the payload and indicating the end of the payload information.The header includes information such as the source of the packet, itsdestination, the length of the payload, and other properties used by theprotocol. Often, the data in the payload for the particular protocolincludes a header and payload for a different protocol associated with adifferent, higher layer of the OSI Reference Model. The header for aparticular protocol typically indicates a type for the next protocolcontained in its payload. The higher layer protocol is said to beencapsulated in the lower layer protocol. The headers included in apacket traversing multiple heterogeneous networks, such as the Internet,typically include a physical (layer 1) header, a data-link (layer 2)header, an internetwork (layer 3) header and a transport (layer 4)header, and various application headers (layer 5, layer 6 and layer 7)as defined by the OSI Reference Model.

In one embodiment, the service platform 107 and/or advertising platform113 may interact according to a client-server model with applications103 and/or advertising engine 109. According to the client-server model,a client process sends a message including a request to a serverprocess, and the server process responds by providing a service (e.g.,messaging, advertisements, etc.). The server process may also return amessage with a response to the client process. Often the client processand server process execute on different computer devices, called hosts,and communicate via a network using one or more protocols for networkcommunications. The term “server” is conventionally used to refer to theprocess that provides the service, or the host computer on which theprocess operates. Similarly, the term “client” is conventionally used torefer to the process that makes the request, or the host computer onwhich the process operates. As used herein, the terms “client” and“server” refer to the processes, rather than the host computers, unlessotherwise clear from the context. In addition, the process performed bya server can be broken up to run as multiple processes on multiple hosts(sometimes called tiers) for reasons that include reliability,scalability, and redundancy, among others.

FIG. 2 is a diagram of the components of user equipment associated withpresenting advertisements to a user, according to one embodiment. By wayof example, the UE 101 includes one or more components for cachingadvertisements to present to a user. It is contemplated that thefunctions of these components may be combined in one or more componentsor performed by other components of equivalent functionality.Additionally, the UE 101 and its components may be considered a meansfor completing some or all of the steps in the processes of FIGS. 4-6.In this embodiment, the UE 101 includes user interface 201 to receiveinput and provide output at the UE 101, a communication interface 203 tocommunicate over a network, runtime module 205 to control the executionof applications 103 and advertising engine 109 executing on the UE 101,an advertisement cache 207, a soft limit application module 209, a powermodule 211, and a location module 213.

The user interface 201 can include various methods of communication. Forexample, the user interface 201 can have outputs including a visualcomponent (e.g., a screen), an audio component, a physical component(e.g., vibrations), and other methods of communication. User inputs caninclude a touch-screen interface, a scroll-and-click interface, a buttoninterface, etc. In certain embodiments, the user interface 201 mayadditionally have a vocal user interface component. As such, atext-to-speech mechanism may be utilized to provide textual informationto the user. Further, a speech-to-text mechanism may be utilized toreceive vocal input and convert the vocal input into textual input.Moreover, the user interface 201 may be utilized to provide visualoutput of applications 103 and/or advertisements. As previously noted,the advertising engine 109 can control which advertisements arepresented with which applications 103.

The communication interface 203 may include multiple means ofcommunication. For example, the communication interface 203 may be ableto communicate over SMS, MMS, internet protocol, instant messaging,voice sessions (e.g., via a phone network), or other types ofcommunication protocols. The communication interface 203 can be used bythe runtime module 205 to communicate with other UEs 101, the serviceplatform 107, the advertising platform 113, and other devices. In someexamples, the communication interface 203 is used to transmit andreceive communication messages to obtain services from the serviceplatform 107 and/or advertisement information from the advertisingplatform 113. In certain embodiments, advertising information includesadvertisements, advertisement creatives, advertising categorizationinformation (e.g., the advertisement is associated with a sponsor of anapplication 103, the advertisement is a house advertisement associatedwith the advertising platform 113, the type of item or service theadvertisement is for, the type of user the advertisement is gearedtowards, etc.), soft limits, soft limit parameters, etc.

Further, the advertising engine 109 may utilize the communicationinterface 203 to update the advertisement cache 207. As such, theadvertising engine 109 can utilize soft limits as parameters todetermine when to update the advertisement cache 207. A soft limitapplication module 209 can be utilized to determine when a soft limit ismet and notify the advertising engine 109 to contact the advertisingplatform 113 for additional advertising information. As previouslynoted, the soft limits can be set based on contextual information and/orother advertising information.

As noted, the UE 101 includes a power module 211. The power module 211provides power to the UE 101. The power module 211 can include any typeof power source (e.g., battery, plug-in, etc.). Additionally, the powermodule 211 can provide power to the components of the UE 101 includingprocessors, memory, and transmitters. The power module 211 may furtherprovide the runtime module 205 and/or advertising engine 109 with astatus of the power supply (e.g., a battery status, such as battery low,a time left for the battery at current power consumption, a percentageof battery power left, etc.).

The location module 213 can determine a user's location. The user'slocation can be determined by a system such as a GPS, A-GPS, Cell ofOrigin, or other location extrapolation technologies. Standard GPS andA-GPS systems can use satellites to pinpoint the location of a UE 101. ACell of Origin system can be used to determine the cellular tower that acellular UE 101 is synchronized with. This information provides a coarselocation of the UE 101 because the cellular tower can have a uniquecellular identifier (cell-ID) that can be geographically mapped. Thelocation module 213 may also utilize multiple technologies to detect thelocation of the UE 101. In certain embodiments, the location informationis utilized as contextual information to determine soft limits by theadvertising engine 109 and/or be utilized by the soft limit applicationmodule 209 for determining when a soft limit is met. Further, thelocation of the UE 101 can be sent to the advertising platform 113 toallow for contextual advertising. For example, when the UE 101 is nearbyan advertisement campaign's sponsor, the advertising platform 113 mayprovide advertisements associated with that campaign.

FIG. 3 is a diagram of the components of an advertising platform 113,according to one embodiment. By way of example, the advertising platform113 includes one or more components for providing advertisementinformation to a UE 101. It is contemplated that the functions of thesecomponents may be combined in one or more components or performed byother components of equivalent functionality. In this embodiment, theadvertising platform 113 includes a communication interface 301, a softlimit determination module 303 that can determine soft limits for UEs101, an execution module 305 that can execute processes and interfacebetween other modules, a campaign manager 307, and an ad database 309.

The communication interface 301 can be used to communicate with UEs 101,a campaign management console 115, and other device available over thecommunication network 105. The execution module 305 can receiveinformation (e.g., a request for advertisements and/or soft limits) fromthe UE 101 via the communication interface 301 via methods such asinternet protocol, Multimedia Messaging Service (MMS), Short MessageService (SMS), GPRS, or any other available communication method.Components in the communication network 105 and/or communicationinterface 301 may be utilized to convert one form of communication toanother form (e.g., from an SMS to another form of data).

The campaign manager 307 can be utilized to receive communications fromthe campaign management console 115 and to obtain advertisementinformation. As such, an advertising user associated with one or moreadvertising campaigns may provide advertising creatives as well asparameters for when the advertising creatives should be presented. Theseadvertising creatives can be stored in the ad database 309. In oneexample, the advertising creatives can be associated with parameters toshow the advertisements based on certain demographic information.Further, the campaign manager 307 can receive information about softlimits the advertising user wishes to associate with particularadvertising campaigns and/or advertisements. Moreover, the campaignmanager 307 can implement distribution algorithms taking into account alarge base of UEs 101 to provide advertisements to. The advertisementsmay be stored in the ad database 309. Further, the campaign manager 307can selectively distribute advertisements to UEs 101 so thatadvertisements are not over delivered to the UE base. In this manner,the advertising platform 113 need not deliver the same advertisements toall UEs 101 and can thus control advertisement exposure using softlimits on the UEs 101 the campaign manager 307 determines to deliver theadvertisements to. For example, distribution algorithms may includealgorithms to maximize click-through-rates of individual UEs 101,algorithms to determine demographic information associated with the userof particular UEs 101 and target particular UEs 101, etc.

The campaign manager 307 can provide soft limit parameters to the softlimit determination module 303. The soft limit determination module 303can determine soft limits to be associated with campaigns,advertisements, soft limits to generally apply based on categories, etc.In certain embodiments, the soft limit determination module 303 can beutilized to update or override current soft limit settings on a UE 101.Further soft limit determination parameters are detailed in theprocesses of FIG. 7. Moreover, the campaign manager 307 may be utilizedto provide reports to managers of campaign advertisements. As such,statistical data about UEs 101 can be compiled for reporting how wellthe advertisement campaign has performed using one or more metricsand/or provide statistical data. The campaign manager 307 can obtaininformation about UE click-through-rates via the communication interface301 from the UEs 101. The information may be sent with a request foradditional advertisements.

FIG. 4 is a flowchart of a process for caching advertisements on userequipment based on soft limits, according to one embodiment. In oneembodiment, the advertising engine 109 of the UE 101 performs theprocess 400 and is implemented in, for instance, a chip set including aprocessor and a memory as shown FIG. 10. As such, the advertising engine109 can provide means for accomplishing various parts of the process 400as well as means for accomplishing other processes in conjunction withother components of the UE 101. In step 401, the advertising engine 109causes, at least in part, caching of an advertisement at the UE 101. Thecaching of the advertisement can be based, at least in part, on a softlimit. Further, the advertisement in the cache can be associated with asoft limit for caching one or more other advertisements.

Next, at step 403, the advertising engine 109 determines a soft limitassociated with the advertisement. In certain embodiments, the softlimit specifies when to cache one or more other advertisements. This mayinclude determining when to request one or more other advertisements tobe downloaded to the cache. When a soft limit is met, the otheradvertisements are acquired (e.g., via download). The advertising engine109 can determine the soft limit by receiving the soft limit from anadvertising platform 113 to guide the caching of ads. In otherembodiments, the advertising engine 109 can determine the soft limitsbased on contextual information. One example of contextual informationincludes soft-limits for determining upcoming offline periods. A goal ofutilizing soft limits is to have impressions of advertisements availableto present to users of the UE 101 when the UE 101 is offline. As such,the advertising engine 109 can determine information about the UE 101 asto time periods when the UE 101 is without access to communicate withthe advertising platform 113 (e.g., when the UE 101 is below ground, atwork, etc.). Then, the advertising engine 109 or advertising platform113 can determine soft limits in accordance to historical lack of accessby the UE 101. For example, if the user is out of connection rangebetween the times of 8 AM to 5 PM on Monday through Friday, soft limitscan be utilized to acquire new advertisements before 8 AM. Further,other contextual information may be utilized to determine soft limits asfurther detailed in FIG. 5. Moreover, soft limits can be set as general(e.g., default) soft limits for each advertisement or based oncategories as further detailed in FIG. 6. For example, a default softlimit may be set to be at 75% of the corresponding hard limit.

Moreover, the advertising engine 109 causes, at least in part, thepresentation of the advertisements, the other advertisements, or acombination of the advertisements based, at least in part, on validityinformation associated with the advertisement (step 405). As notedabove, in some embodiments, the validity information is a limitassociated with whether or not the advertisement is valid to bepresented. As such, the validity information may be set based on whenthe advertisement expires (e.g., based on a time or a number ofimpressions made to a user of the UE 101). The presentation of theadvertisement(s) can be before the use of an application 103 (e.g., afull or partial screen presentation before the application 103 can beutilized), during the use of the application 103 (e.g., as a portion ofa screen running the application 103 or as an advertisements thatperiodically is presented via the screen and/or via audio), or after theapplication content is presented (e.g., during shutdown of theapplication 103). As previously noted, in other embodiments, theadvertisement may be presented as a system process of the UE 101 andneed not be associated with the application 103. In certain embodiments,the advertising engine 109 causes the application 103 to present theadvertisement by providing the advertisement (e.g., a location in theadvertisement cache 207) and/or an instruction to present theadvertisement. Thus, the advertising engine 109 can cause presentationof an advertisement by delivering an ad to an application 103 thatrequest it, or initiating a “pop up” to an application 103 that supportsthis type of behavior. A “pop up” may be considered presented when theadvertising engine 109 uses a push type API to present advertisementsvia the application 103. Further, an application 103 may be the idlescreen of the UE 101, or a screen server. The pop up may be initiated bythe advertising engine 109 according one or more contextual parameterssuch as time or location (e.g., when the UE 101 is at the user's home).

The advertising engine 109 determines that the soft limit has been met(step 407). As previously noted, the soft limit determination can bemade according to one or more criteria associated with the soft limits.For example, the soft limits can have a criteria associated withcontextual information, categories, parameters set by a campaignmanager, etc. Accordingly, one or more soft limits may be triggereddepending on the criteria associated with the soft limit. As such,different soft limits can be met depending on the circumstances orcontext associated with the UE 101, a user of the UE 101, theadvertisement, the advertising platform 113, etc.

When the soft limit is met based on the criteria (e.g., time and/orimpression limits based on context), the advertising engine 109 causescaching of the other advertisements on the UE 101 (step 409). Theadvertising engine 109 can cause transmission of a request for theadvertisements from the advertising platform 113 and receive theadvertisements. Further, the advertising engine 109 can determine orreceive soft limit parameters associated with the advertisements and/orother information (e.g., categorical or campaign information) associatedwith the advertisements. As such, soft limits can be associated with theadvertisement. Moreover, the advertisements and/or soft limits can bebased on the click-through-rate of advertisements presented. This can bebased on the individual user of the UE 101 and based on informationgathered by the UE 101 and/or based on other information gathered by theadvertising platform 113 from a device base of other UEs 101.

FIG. 5 is a flowchart of a process for determining soft limits based oncontextual information, according to one embodiment. In one embodiment,the advertising engine 109 of the UE 101 performs the process 500 and isimplemented in, for instance, a chip set including a processor and amemory as shown FIG. 10. As such, the advertising engine 109 can providemeans for accomplishing various parts of the process 500 as well asmeans for accomplishing other processes in conjunction with othercomponents of the UE 101. In certain embodiments, portions of theprocess 500 can be executed using one or more components of theadvertising platform 113.

At step 501, the advertising engine 109 determines contextualinformation associated with the UE 101, user of the UE 101,advertisements, or a combination thereof. In certain embodiments, thecontextual information includes a roaming status of the UE 101, a typeof radio technology utilized by the UE 101, a user's data plan, abattery status associated with the UE 101, a validity time associatedwith the advertisement and/or advertisement campaign, a fill rateassociated with the advertisement, based on a click-through-rateassociated with the user or other users, a distribution algorithmutilizing the soft limits to control advertisement exposure, advertiserinput, time of day, location of UE 101, or a combination thereof. Then,the advertising engine 109 determines the soft limit based, at least inpart, on the contextual data (step 503).

In one embodiment, the roaming status of the UE 101, is utilized todetermine the soft limit. As such, a high soft limit can be set for whenthe UE 101 is abroad or roaming. A high soft limit can be determined tobe a soft limit with a higher number of impressions that can bepresented or a longer time limit before requesting additionaladvertisements, resulting in a lower frequency of acquiring additionaladvertisements. The lower frequency of acquiring additionaladvertisements can then advantageously result in reduced networkbandwidth use. Likewise, when availability or cost of bandwidth is not aconcern, a low soft limit can be set to lower the number of impressionsor time limit to acquire additional advertisements, resulting in ahigher frequency of acquiring additional advertisements. In certainembodiments, a roaming parameter can be associated with a dynamic softlimit. In this embodiment, the roaming parameter increases a base softlimit when the UE 101 is roaming.

In another embodiment, the type of communication technology (e.g., radiotechnology) utilized by the UE 101 is a parameter for setting the softlimit. For example, when the UE 101 is connected to a low powerconsumption communication technology, the soft limit can be lower. Assuch, because less power is needed to utilize the communicationtechnology, the frequency of receiving additional advertisements can beincreased. In one example, the UE 101 is a cellular phone and the typesof communication technology used are cellular radio and wireless localarea network. In this example, the soft limit can be lower for wirelesslocal area network than for cellular radio. As noted above, the type ofcommunication technology used can be a parameter in setting up a dynamicsoft limit. Similarly, the user's data plan may be a basis fordetermining soft limits. For example, if the user has an unlimited dataplan, the soft limit can be set lower without incurring additional coststo the user, while if the user has a limited data plan, the user may notwish to incur fees to receive advertisements.

In yet another embodiment, the battery status associated with the UE 101is a parameter for setting the soft limit. As such, when the batterylife indicator of the UE 101 is lower, the advertising engine 109determines the higher soft limit for retrieving advertisements. Further,when the battery life indicator indicates a critically low battery liferemaining (e.g., the battery is below a certain threshold level), thesoft limit can be adjusted even higher (e.g., by setting parameters of adynamic soft limit).

Further, in one embodiment, the validity time associated with theadvertisement and/or advertisement campaign can be utilized to set asoft limit associated with the advertisement's useful life. For example,in an advertisement for a sale at a department store, the advertisementwould be less useful after the sale was completed (e.g., at the end ofthe week). As such, the advertising engine 109 can set a soft limitparameter to determine to acquire additional advertisements in a timeperiod before the advertisements lose usefulness.

Moreover, a fill rate associated with advertisements can be utilized todetermine soft limits. A fill rate is the percentage of advertisementssatisfied with an inventory of advertisements. For example, an inventoryof advertisements can be a certain number based on how manyadvertisements an advertiser wishes to purchase from the advertisingplatform 113. If the fill rate is low, the soft limit can be high,allowing for the showing of the advertisement multiple times to users. Ahigh soft limit provides less control for the advertising platform 113and can increase the risk that a campaign is over delivered. However,this is an acceptable risk if the fill rate is low because there is ahigher inventory of advertisements available.

Additionally or alternatively, the soft limit can be determined, basedat least in part, on a click-through-rate associated with the user orother users. As such, the advertising engine 109 can determine aclick-through-rate maximization algorithm. The goal of the algorithm isto maximize the number of times the user accesses the advertisements bysetting the soft limit accordingly. For example, the advertising engine109 determines a soft limit base. Then, the advertising engine 109utilizes the algorithm to determine soft limits to maximize theclick-through-rate based on the historical click-through-ratesassociated with the UE 101 and/or user. Moreover, in certainembodiments, click-through-rate information is provided to theadvertising platform 113 and the advertising platform 113 can utilizealgorithms to maximize the click-through-rate of a base of users via adistribution algorithm utilizing soft limits to control advertisementexposure (e.g., based on the click-through-rates).

In certain embodiments, advertiser input can be utilized to determinesoft limits. For example, the advertiser (e.g., advertisement publisher,agent, etc.) may set a lower boundary soft limit parameter. Thisparameter may set a boundary for the lowest soft limit available for theadvertising engine 109 to utilize. This may be set so that theadvertisement is shown at least a certain amount of times before neweradvertisements are acquired. This can be useful if an optimalclick-through-rate is determined to be after a certain number ofimpressions.

Moreover, the time of day and/or location of the UE 101 may be utilizedto determine soft limits. For example, it may be beneficial to updateadvertisements during daytime hours and/or when the UE 101 is plugged inand not on a battery supply. Further, it may be beneficial to updatesoft limits when the UE 101 moves from one location to another. Forexample, soft limits may be higher when the user is at a work place andlower when the user is at a mall. Further, advertisements can be basedon the location of the UE 101. The advertising engine 109 can retrievelocation coordinates from the location module 213 and can send thelocation coordinates to the advertising platform 113 to retrieveadvertisements associated with the location. For example, if the user isin a location associated with a mall, more frequent updates may beutilized and/or advertisements for store merchandise may be provided tothe UE 101.

With this approach, the soft limits may be set by the advertisingplatform 113 and/or the advertising engine 109. Further, multipleparameters associated with soft limits can be received by theadvertising engine 109 from the advertising platform 113 to determinethe soft limit and/or determining that the soft limit has been met. Assuch, the parameters may be criteria used to determine whether the softlimit has been met.

FIG. 6 is a flowchart of a process for determining soft limits based oncategories, according to one embodiment. In one embodiment, theadvertising engine 109 of the UE 101 performs the process 600 and isimplemented in, for instance, a chip set including a processor and amemory as shown FIG. 10. As such, the advertising engine 109 can providemeans for accomplishing various parts of the process 600 as well asmeans for accomplishing other processes in conjunction with othercomponents of the UE 101. In certain embodiments, portions of theprocess 600 can be executed using one or more components of theadvertising platform 113.

At step 601, the advertising engine 109 and/or execution module 305categorizes advertisements according to predetermined criteria. Incertain embodiments, the criteria are set by the advertising platform113. Criteria to determine categories can include a type ofadvertisement (e.g., audio, video, image, etc.), an advertising campaignor flight associated with the advertisement, a class of advertisement(e.g., sponsorship advertisement, guaranteed advertisements, remnantadvertisements (e.g., remainder or last minute advertising space thatthe service provider has been unable to sell), house advertisement(e.g., advertisements generated by the service provider)), etc.).Categories can allow the advertising platform 113 and/or a campaignmanager to modify or otherwise determine soft limits based on thecategories (step 603). Thus, changes can be made at a large scale levelon many different advertisements. Further, soft limit parameters may bedifferent for different categories of advertisements due to priorities.

The class of advertisements can be utilized to determine a preferencefor using the advertisements to present on the UE 101. For example,sponsorship advertisements and guaranteed advertisements may generategreater revenues for the advertising platform 113, thus, soft limitsassociated with these advertisements may be higher. A sponsorshipadvertisement may be an advertisement where a particular sponsor buys alarge amount of advertising space on one or more UEs 101 and/orapplications 103 to repeatedly publish advertisements associated withthe sponsor. Remnant advertising space can be priced at a lower cost toadvertisers; therefore, it may be beneficial for the advertising serviceto utilize a lower soft limit for the remnant advertisements to increaserevenue. Further, house advertisements may not generate any revenue, butrather generate good will towards the service. Thus, the serviceprovider may wish to utilize low soft limits to decrease the chance ofpublishing house advertisements in favor of paid advertisements.Additionally, in certain embodiments, default soft limit parameters canbe set for different categories of advertisements. These soft limitparameters may be overridden (e.g., if an advertisement is received fromthe advertising platform 113 with its own parameters).

FIG. 7 is a flowchart of a process for determining soft limits based onadvertiser criteria, according to one embodiment. In one embodiment, theexecution module 305 of the advertising platform 113 performs theprocess 700 and is implemented in, for instance, a chip set including aprocessor and a memory as shown FIG. 10. As such, the execution module305 can provide means for accomplishing various parts of the process 700as well as means for accomplishing other processes in conjunction withother components of the advertising platform 113. In certainembodiments, portions of the process 700 can be executed using one ormore components of the UE 101.

At step 701, the execution module 305 associates the advertising engine109 of the UE 101 with the advertising platform 113. This may be done byassociating an identifier (e.g., phone number, unique identifier,username and/or password, pin code, etc.) with the UE 101 and/or user.Further, multiple UEs 101 comprising a device base can be associatedwith the advertising platform 113. Further, the execution module 305 cancharacterize the device base associated with the UEs 101 (step 703).This characterization can be based, at least in part, on demographicinformation associated with the users of the UEs 101 and/or UE 101 useinformation.

Then, at step 705, input associated with advertiser criteria for softlimits is received. The criteria can include soft limits minimums and/ormaximums. For example, a maximum limit on impressions may be set if theadvertiser does not want more than a certain number of impressions of anadvertisement creative to be shown to a user. Further, as noted above,the advertiser can adjust soft limits based on categories via thecampaign manager 307.

At step 707, the execution module 305 can determine soft limits for aparticular advertising engine 109 of a UE 101. As such, the executionmodule 305 determines which advertisements to provide to the UE 101based on distribution algorithms. The distribution algorithms may bebased, at least in part, on how many UEs 101 have been targeted for aparticular advertisement flight or campaign. The soft limits on the UE101 may be set so that as a whole, the advertisement campaign is notover delivered. An advertisement campaign can be over delivered if thenumber of impressions of the advertisements is more than the number ofimpressions sold to a customer. This may mean that revenue is notgenerated by the over delivered advertisements. Thus, the advertisingservice provider, to maximize revenue, may set the soft limits so thatchance to over deliver the advertisement campaign is reduced (e.g., bylimiting the number of high soft limits to a certain number of UEs 101).Once a soft limit is determined, the soft limit is caused, at least inpart, to be transmitted to the advertising engine 109 (step 709). Thetransmission can be included with a particular advertising creativeassociated with the advertisement.

FIGS. 8A-8B are diagrams of example user interfaces utilized in theprocesses of FIGS. 4-7, according to various embodiments. FIG. 8A showsa user interface 800 with an advertisement displayed during theexecution of a messaging application. Application content 801 ispresented at the same time as advertisement content 803. Further, theuser may click on a portion 805 of the advertisement to accessadditional content (e.g., make reservations). The advertisement contentcan be determined via soft limits.

Further, FIG. 8B shows a user interface 820 with advertisement content821 displayed separately from application content. As such, the user maychoose to continue to the application 823 and/or wait for a given amountof time to continue to the application. Further, the user can click formore information 825 about the advertiser. When clicked, informationabout the click can be stored in a memory and returned to an advertisingplatform 113 as statistical data.

With the above approaches, advertisements can be provided to a consumerduring advantageous time periods based on soft limits. Theadvertisements can thus be provided to maximize use of a UE 101. Forexample, a soft limit based, at least in part, on the battery life ofthe UE 101 can be utilized to conserve battery power for the UE 101 whenthe UE 101 is low on battery power. Further, to conserve power, the UE101 may have lower soft limits when the UE 101 is within range ofcommunications technology that conserves power. Moreover, serviceprovider and/or user costs can be saved by limiting retrieval ofadvertisements when the UE 101 is roaming out of service of the UEservice provider.

The processes described herein for providing advertisements according tosoft limits are disclosed may be advantageously implemented viasoftware, hardware, firmware or a combination of software and/orfirmware and/or hardware. For example, the processes described herein,including for providing user interface navigation information associatedwith the availability of services, may be advantageously implemented viaprocessor(s), Digital Signal Processing (DSP) chip, an ApplicationSpecific Integrated Circuit (ASIC), Field Programmable Gate Arrays(FPGAs), etc. Such exemplary hardware for performing the describedfunctions is detailed below.

FIG. 9 illustrates a computer system 900 upon which an embodiment of theinvention may be implemented. Although computer system 900 is depictedwith respect to a particular device or equipment, it is contemplatedthat other devices or equipment (e.g., network elements, servers, etc.)within FIG. 9 can deploy the illustrated hardware and components ofsystem 900. Computer system 900 is programmed (e.g., via computerprogram code or instructions) to serve advertisements according to softlimits are disclosed as described herein and includes a communicationmechanism such as a bus 910 for passing information between otherinternal and external components of the computer system 900. Information(also called data) is represented as a physical expression of ameasurable phenomenon, typically electric voltages, but including, inother embodiments, such phenomena as magnetic, electromagnetic,pressure, chemical, biological, molecular, atomic, sub-atomic andquantum interactions. For example, north and south magnetic fields, or azero and non-zero electric voltage, represent two states (0, 1) of abinary digit (bit). Other phenomena can represent digits of a higherbase. A superposition of multiple simultaneous quantum states beforemeasurement represents a quantum bit (qubit). A sequence of one or moredigits constitutes digital data that is used to represent a number orcode for a character. In some embodiments, information called analogdata is represented by a near continuum of measurable values within aparticular range. Computer system 900, or a portion thereof, constitutesa means for performing one or more steps of serving advertisementsaccording to soft limits are disclosed.

A bus 910 includes one or more parallel conductors of information sothat information is transferred quickly among devices coupled to the bus910. One or more processors 902 for processing information are coupledwith the bus 910.

A processor (or multiple processors) 902 performs a set of operations oninformation as specified by computer program code related to serveadvertisements according to soft limits are disclosed. The computerprogram code is a set of instructions or statements providinginstructions for the operation of the processor and/or the computersystem to perform specified functions. The code, for example, may bewritten in a computer programming language that is compiled into anative instruction set of the processor. The code may also be writtendirectly using the native instruction set (e.g., machine language). Theset of operations include bringing information in from the bus 910 andplacing information on the bus 910. The set of operations also typicallyinclude comparing two or more units of information, shifting positionsof units of information, and combining two or more units of information,such as by addition or multiplication or logical operations like OR,exclusive OR (XOR), and AND. Each operation of the set of operationsthat can be performed by the processor is represented to the processorby information called instructions, such as an operation code of one ormore digits. A sequence of operations to be executed by the processor902, such as a sequence of operation codes, constitute processorinstructions, also called computer system instructions or, simply,computer instructions. Processors may be implemented as mechanical,electrical, magnetic, optical, chemical or quantum components, amongothers, alone or in combination.

Computer system 900 also includes a memory 904 coupled to bus 910. Thememory 904, such as a random access memory (RAM) or other dynamicstorage device, stores information including processor instructions forserving advertisements according to soft limits are disclosed. Dynamicmemory allows information stored therein to be changed by the computersystem 900. RAM allows a unit of information stored at a location calleda memory address to be stored and retrieved independently of informationat neighboring addresses. The memory 904 is also used by the processor902 to store temporary values during execution of processorinstructions. The computer system 900 also includes a read only memory(ROM) 906 or other static storage device coupled to the bus 910 forstoring static information, including instructions, that is not changedby the computer system 900. Some memory is composed of volatile storagethat loses the information stored thereon when power is lost. Alsocoupled to bus 910 is a non-volatile (persistent) storage device 908,such as a magnetic disk, optical disk or flash card, for storinginformation, including instructions, that persists even when thecomputer system 900 is turned off or otherwise loses power.

Information, including instructions for serving advertisements accordingto soft limits are disclosed, is provided to the bus 910 for use by theprocessor from an external input device 912, such as a keyboardcontaining alphanumeric keys operated by a human user, or a sensor. Asensor detects conditions in its vicinity and transforms thosedetections into physical expression compatible with the measurablephenomenon used to represent information in computer system 900. Otherexternal devices coupled to bus 910, used primarily for interacting withhumans, include a display device 914, such as a cathode ray tube (CRT)or a liquid crystal display (LCD), or plasma screen or printer forpresenting text or images, and a pointing device 916, such as a mouse ora trackball or cursor direction keys, or motion sensor, for controllinga position of a small cursor image presented on the display 914 andissuing commands associated with graphical elements presented on thedisplay 914. In some embodiments, for example, in embodiments in whichthe computer system 900 performs all functions automatically withouthuman input, one or more of external input device 912, display device914 and pointing device 916 is omitted.

In the illustrated embodiment, special purpose hardware, such as anapplication specific integrated circuit (ASIC) 920, is coupled to bus910. The special purpose hardware is configured to perform operationsnot performed by processor 902 quickly enough for special purposes.Examples of application specific ICs include graphics accelerator cardsfor generating images for display 914, cryptographic boards forencrypting and decrypting messages sent over a network, speechrecognition, and interfaces to special external devices, such as roboticarms and medical scanning equipment that repeatedly perform some complexsequence of operations that are more efficiently implemented inhardware.

Computer system 900 also includes one or more instances of acommunications interface 970 coupled to bus 910. Communication interface970 provides a one-way or two-way communication coupling to a variety ofexternal devices that operate with their own processors, such asprinters, scanners and external disks. In general the coupling is with anetwork link 978 that is connected to a local network 980 to which avariety of external devices with their own processors are connected. Forexample, communication interface 970 may be a parallel port or a serialport or a universal serial bus (USB) port on a personal computer. Insome embodiments, communications interface 970 is an integrated servicesdigital network (ISDN) card or a digital subscriber line (DSL) card or atelephone modem that provides an information communication connection toa corresponding type of telephone line. In some embodiments, acommunication interface 970 is a cable modem that converts signals onbus 910 into signals for a communication connection over a coaxial cableor into optical signals for a communication connection over a fiberoptic cable. As another example, communications interface 970 may be alocal area network (LAN) card to provide a data communication connectionto a compatible LAN, such as Ethernet. Wireless links may also beimplemented. For wireless links, the communications interface 970 sendsor receives or both sends and receives electrical, acoustic orelectromagnetic signals, including infrared and optical signals, thatcarry information streams, such as digital data. For example, inwireless handheld devices, such as mobile telephones like cell phones,the communications interface 970 includes a radio band electromagnetictransmitter and receiver called a radio transceiver. In certainembodiments, the communications interface 970 enables connection to thecommunication network 105 for serving advertisements according to softlimits are disclosed to the UE 101.

The term “computer-readable medium” as used herein refers to any mediumthat participates in providing information to processor 902, includinginstructions for execution. Such a medium may take many forms,including, but not limited to computer-readable storage medium (e.g.,non-volatile media, volatile media), and transmission media.Non-transitory media, such as non-volatile media, include, for example,optical or magnetic disks, such as storage device 908. Volatile mediainclude, for example, dynamic memory 904. Transmission media include,for example, coaxial cables, copper wire, fiber optic cables, andcarrier waves that travel through space without wires or cables, such asacoustic waves and electromagnetic waves, including radio, optical andinfrared waves. Signals include man-made transient variations inamplitude, frequency, phase, polarization or other physical propertiestransmitted through the transmission media. Common forms ofcomputer-readable media include, for example, a floppy disk, a flexibledisk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM,CDRW, DVD, any other optical medium, punch cards, paper tape, opticalmark sheets, any other physical medium with patterns of holes or otheroptically recognizable indicia, a RAM, a PROM, an EPROM, a FLASH-EPROM,any other memory chip or cartridge, a carrier wave, or any other mediumfrom which a computer can read. The term computer-readable storagemedium is used herein to refer to any computer-readable medium excepttransmission media.

Logic encoded in one or more tangible media includes one or both ofprocessor instructions on a computer-readable storage media and specialpurpose hardware, such as ASIC 920.

Network link 978 typically provides information communication usingtransmission media through one or more networks to other devices thatuse or process the information. For example, network link 978 mayprovide a connection through local network 980 to a host computer 982 orto equipment 984 operated by an Internet Service Provider (ISP). ISPequipment 984 in turn provides data communication services through thepublic, world-wide packet-switching communication network of networksnow commonly referred to as the Internet 990.

A computer called a server host 992 connected to the Internet hosts aprocess that provides a service in response to information received overthe Internet. For example, server host 992 hosts a process that providesinformation representing video data for presentation at display 914. Itis contemplated that the components of system 900 can be deployed invarious configurations within other computer systems, e.g., host 982 andserver 992.

At least some embodiments of the invention are related to the use ofcomputer system 900 for implementing some or all of the techniquesdescribed herein. According to one embodiment of the invention, thosetechniques are performed by computer system 900 in response to processor902 executing one or more sequences of one or more processorinstructions contained in memory 904. Such instructions, also calledcomputer instructions, software and program code, may be read intomemory 904 from another computer-readable medium such as storage device908 or network link 978. Execution of the sequences of instructionscontained in memory 904 causes processor 902 to perform one or more ofthe method steps described herein. In alternative embodiments, hardware,such as ASIC 920, may be used in place of or in combination withsoftware to implement the invention. Thus, embodiments of the inventionare not limited to any specific combination of hardware and software,unless otherwise explicitly stated herein.

The signals transmitted over network link 978 and other networks throughcommunications interface 970, carry information to and from computersystem 900. Computer system 900 can send and receive information,including program code, through the networks 980, 990 among others,through network link 978 and communications interface 970. In an exampleusing the Internet 990, a server host 992 transmits program code for aparticular application, requested by a message sent from computer 900,through Internet 990, ISP equipment 984, local network 980 andcommunications interface 970. The received code may be executed byprocessor 902 as it is received, or may be stored in memory 904 or instorage device 908 or other non-volatile storage for later execution, orboth. In this manner, computer system 900 may obtain application programcode in the form of signals on a carrier wave.

Various forms of computer readable media may be involved in carrying oneor more sequence of instructions or data or both to processor 902 forexecution. For example, instructions and data may initially be carriedon a magnetic disk of a remote computer such as host 982. The remotecomputer loads the instructions and data into its dynamic memory andsends the instructions and data over a telephone line using a modem. Amodem local to the computer system 900 receives the instructions anddata on a telephone line and uses an infra-red transmitter to convertthe instructions and data to a signal on an infra-red carrier waveserving as the network link 978. An infrared detector serving ascommunications interface 970 receives the instructions and data carriedin the infrared signal and places information representing theinstructions and data onto bus 910. Bus 910 carries the information tomemory 904 from which processor 902 retrieves and executes theinstructions using some of the data sent with the instructions. Theinstructions and data received in memory 904 may optionally be stored onstorage device 908, either before or after execution by the processor902.

FIG. 10 illustrates a chip set or chip 1000 upon which an embodiment ofthe invention may be implemented. Chip set 1000 is programmed to serveadvertisements according to soft limits are disclosed as describedherein and includes, for instance, the processor and memory componentsdescribed with respect to FIG. 9 incorporated in one or more physicalpackages (e.g., chips). By way of example, a physical package includesan arrangement of one or more materials, components, and/or wires on astructural assembly (e.g., a baseboard) to provide one or morecharacteristics such as physical strength, conservation of size, and/orlimitation of electrical interaction. It is contemplated that in certainembodiments the chip set 1000 can be implemented in a single chip. It isfurther contemplated that in certain embodiments the chip set or chip1000 can be implemented as a single “system on a chip.” It is furthercontemplated that in certain embodiments a separate ASIC would not beused, for example, and that all relevant functions as disclosed hereinwould be performed by a processor or processors. Chip set or chip 1000,or a portion thereof, constitutes a means for performing one or moresteps of providing user interface navigation information associated withthe availability of services. Chip set or chip 1000, or a portionthereof, constitutes a means for performing one or more steps of servingadvertisements according to soft limits are disclosed.

In one embodiment, the chip set or chip 1000 includes a communicationmechanism such as a bus 1001 for passing information among thecomponents of the chip set 1000. A processor 1003 has connectivity tothe bus 1001 to execute instructions and process information stored in,for example, a memory 1005. The processor 1003 may include one or moreprocessing cores with each core configured to perform independently. Amulti-core processor enables multiprocessing within a single physicalpackage. Examples of a multi-core processor include two, four, eight, orgreater numbers of processing cores. Alternatively or in addition, theprocessor 1003 may include one or more microprocessors configured intandem via the bus 1001 to enable independent execution of instructions,pipelining, and multithreading. The processor 1003 may also beaccompanied with one or more specialized components to perform certainprocessing functions and tasks such as one or more digital signalprocessors (DSP) 1007, or one or more application-specific integratedcircuits (ASIC) 1009. A DSP 1007 typically is configured to processreal-world signals (e.g., sound) in real time independently of theprocessor 1003. Similarly, an ASIC 1009 can be configured to performedspecialized functions not easily performed by a more general purposeprocessor. Other specialized components to aid in performing theinventive functions described herein may include one or more fieldprogrammable gate arrays (FPGA) (not shown), one or more controllers(not shown), or one or more other special-purpose computer chips.

In one embodiment, the chip set or chip 800 includes merely one or moreprocessors and some software and/or firmware supporting and/or relatingto and/or for the one or more processors.

The processor 1003 and accompanying components have connectivity to thememory 1005 via the bus 1001. The memory 1005 includes both dynamicmemory (e.g., RAM, magnetic disk, writable optical disk, etc.) andstatic memory (e.g., ROM, CD-ROM, etc.) for storing executableinstructions that when executed perform the inventive steps describedherein to serve advertisements according to soft limits are disclosed.The memory 1005 also stores the data associated with or generated by theexecution of the inventive steps.

FIG. 11 is a diagram of exemplary components of a mobile terminal (e.g.,handset) for communications, which is capable of operating in the systemof FIG. 1, according to one embodiment. In some embodiments, mobileterminal 1100, or a portion thereof, constitutes a means for performingone or more steps of serving advertisements according to soft limits aredisclosed. Generally, a radio receiver is often defined in terms offront-end and back-end characteristics. The front-end of the receiverencompasses all of the Radio Frequency (RF) circuitry whereas theback-end encompasses all of the base-band processing circuitry. As usedin this application, the term “circuitry” refers to both: (1)hardware-only implementations (such as implementations in only analogand/or digital circuitry), and (2) to combinations of circuitry andsoftware (and/or firmware) (such as, if applicable to the particularcontext, to a combination of processor(s), including digital signalprocessor(s), software, and memory(ies) that work together to cause anapparatus, such as a mobile phone or server, to perform variousfunctions). This definition of “circuitry” applies to all uses of thisterm in this application, including in any claims. As a further example,as used in this application and if applicable to the particular context,the term “circuitry” would also cover an implementation of merely aprocessor (or multiple processors) and its (or their) accompanyingsoftware/or firmware. The term “circuitry” would also cover ifapplicable to the particular context, for example, a baseband integratedcircuit or applications processor integrated circuit in a mobile phoneor a similar integrated circuit in a cellular network device or othernetwork devices.

Pertinent internal components of the telephone include a Main ControlUnit (MCU) 1103, a Digital Signal Processor (DSP) 1105, and areceiver/transmitter unit including a microphone gain control unit and aspeaker gain control unit. A main display unit 1107 provides a displayto the user in support of various applications and mobile terminalfunctions that perform or support the steps of serving advertisementsaccording to soft limits are disclosed. The display 11 includes displaycircuitry configured to display at least a portion of a user interfaceof the mobile terminal (e.g., mobile telephone). Additionally, thedisplay 1107 and display circuitry are configured to facilitate usercontrol of at least some functions of the mobile terminal. An audiofunction circuitry 1109 includes a microphone 1111 and microphoneamplifier that amplifies the speech signal output from the microphone1111. The amplified speech signal output from the microphone 1111 is fedto a coder/decoder (CODEC) 1113.

A radio section 1115 amplifies power and converts frequency in order tocommunicate with a base station, which is included in a mobilecommunication system, via antenna 1117. The power amplifier (PA) 1119and the transmitter/modulation circuitry are operationally responsive tothe MCU 1103, with an output from the PA 1119 coupled to the duplexer1121 or circulator or antenna switch, as known in the art. The PA 1119also couples to a battery interface and power control unit 1120.

In use, a user of mobile terminal 1101 speaks into the microphone 1111and his or her voice along with any detected background noise isconverted into an analog voltage. The analog voltage is then convertedinto a digital signal through the Analog to Digital Converter (ADC)1123. The control unit 1103 routes the digital signal into the DSP 1105for processing therein, such as speech encoding, channel encoding,encrypting, and interleaving. In one embodiment, the processed voicesignals are encoded, by units not separately shown, using a cellulartransmission protocol such as global evolution (EDGE), general packetradio service (GPRS), global system for mobile communications (GSM),Internet protocol multimedia subsystem (IMS), universal mobiletelecommunications system (UMTS), etc., as well as any other suitablewireless medium, e.g., microwave access (WiMAX), Long Term Evolution(LTE) networks, code division multiple access (CDMA), wideband codedivision multiple access (WCDMA), wireless fidelity (WiFi), satellite,and the like.

The encoded signals are then routed to an equalizer 1125 forcompensation of any frequency-dependent impairments that occur duringtransmission though the air such as phase and amplitude distortion.After equalizing the bit stream, the modulator 1127 combines the signalwith a RF signal generated in the RF interface 1129. The modulator 1127generates a sine wave by way of frequency or phase modulation. In orderto prepare the signal for transmission, an up-converter 1131 combinesthe sine wave output from the modulator 1127 with another sine wavegenerated by a synthesizer 1133 to achieve the desired frequency oftransmission. The signal is then sent through a PA 1119 to increase thesignal to an appropriate power level. In practical systems, the PA 1119acts as a variable gain amplifier whose gain is controlled by the DSP1105 from information received from a network base station. The signalis then filtered within the duplexer 1121 and optionally sent to anantenna coupler 1135 to match impedances to provide maximum powertransfer. Finally, the signal is transmitted via antenna 1117 to a localbase station. An automatic gain control (AGC) can be supplied to controlthe gain of the final stages of the receiver. The signals may beforwarded from there to a remote telephone which may be another cellulartelephone, other mobile phone or a land-line connected to a PublicSwitched Telephone Network (PSTN), or other telephony networks.

Voice signals transmitted to the mobile terminal 1101 are received viaantenna 1117 and immediately amplified by a low noise amplifier (LNA)1137. A down-converter 1139 lowers the carrier frequency while thedemodulator 1141 strips away the RF leaving only a digital bit stream.The signal then goes through the equalizer 1125 and is processed by theDSP 1105. A Digital to Analog Converter (DAC) 1143 converts the signaland the resulting output is transmitted to the user through the speaker1145, all under control of a Main Control Unit (MCU) 1103—which can beimplemented as a Central Processing Unit (CPU) (not shown).

The MCU 1103 receives various signals including input signals from thekeyboard 1147. The keyboard 1147 and/or the MCU 1103 in combination withother user input components (e.g., the microphone 1111) comprise a userinterface circuitry for managing user input. The MCU 1103 runs a userinterface software to facilitate user control of at least some functionsof the mobile terminal 1101 to serve advertisements according to softlimits are disclosed. The MCU 1103 also delivers a display command and aswitch command to the display 1107 and to the speech output switchingcontroller, respectively. Further, the MCU 1103 exchanges informationwith the DSP 1105 and can access an optionally incorporated SIM card1149 and a memory 1151. In addition, the MCU 1103 executes variouscontrol functions required of the terminal. The DSP 1105 may, dependingupon the implementation, perform any of a variety of conventionaldigital processing functions on the voice signals. Additionally, DSP1105 determines the background noise level of the local environment fromthe signals detected by microphone 1111 and sets the gain of microphone1111 to a level selected to compensate for the natural tendency of theuser of the mobile terminal 1101.

The CODEC 1113 includes the ADC 1123 and DAC 1143. The memory 1151stores various data including call incoming tone data and is capable ofstoring other data including music data received via, e.g., the globalInternet. The software module could reside in RAM memory, flash memory,registers, or any other form of writable storage medium known in theart. The memory device 1151 may be, but not limited to, a single memory,CD, DVD, ROM, RAM, EEPROM, optical storage, or any other non-volatilestorage medium capable of storing digital data.

An optionally incorporated SIM card 1149 carries, for instance,important information, such as the cellular phone number, the carriersupplying service, subscription details, and security information. TheSIM card 1149 serves primarily to identify the mobile terminal 1101 on aradio network. The card 1149 also contains a memory for storing apersonal telephone number registry, text messages, and user specificmobile terminal settings.

While the invention has been described in connection with a number ofembodiments and implementations, the invention is not so limited butcovers various obvious modifications and equivalent arrangements, whichfall within the purview of the appended claims. Although features of theinvention are expressed in certain combinations among the claims, it iscontemplated that these features can be arranged in any combination andorder.

What is claimed is:
 1. A method for caching advertisement data at amobile device based on a soft limit comprising: caching theadvertisement data in a memory of a mobile device, wherein theadvertisement data is associated with a hard limit that determines anexpiration of the advertisement data; determining a battery status ofthe mobile device, a communication technology to be used by the mobiledevice, or a combination thereof; determining a soft limit for theadvertisement data based on the battery status, the communicationtechnology, or a combination thereof, wherein the soft limit triggerswhen the mobile device begins to fetch, cache, or a combination thereofadditional advertisement data to the memory; and during a period of timebetween the soft limit and the hard limit, transmitting a request forthe additional advertisement data over a communication network.
 2. Themethod of claim 1, wherein the soft limit is determined by adjusting thesoft limit to be higher based on determining that the battery statusindicates a battery of the mobile device is below a threshold level. 3.The method of claim 1, wherein the soft limit is determined by adjustingthe soft limit to be lower based on determining that the communicationtechnology is low power consumption communication technology.
 4. Themethod of claim 3, wherein the low power consumption communicationtechnology is a wireless local area network technology.
 5. The method ofclaim 1, wherein the soft limit is determined by adjusting the softlimit to be higher based on determining that the communicationtechnology is a cellular radio technology.
 6. The method of claim 1,wherein the soft limit is further based on a data plan associated withthe communication technology.
 7. The method of claim 1, wherein the softlimit is further based on a roaming status of the mobile device.
 8. Themethod of claim 1, wherein the soft limit is further based on ahistorical lack of access by the mobile device.
 9. The method of claim8, wherein the historical lack of access is based on an out ofconnection range.
 10. The method of claim 1, further comprising: mixingbetween presenting the advertisement data and the additionaladvertisement data during the period of time between the soft limit andthe hard limit.
 11. An apparatus for caching advertisement data at amobile device based on a soft limit comprising: at least one processor;and at least one memory including computer program code, the at leastone memory and the computer program code configured to, with the atleast one processor, cause the apparatus to perform at least thefollowing, cache the advertisement data in a memory of a mobile device,wherein the advertisement data is associated with a hard limit thatdetermines an expiration of the advertisement data; determine a batterystatus of the mobile device, a communication technology to be used bythe mobile device, or a combination thereof; determine a soft limit forthe advertisement data based on the battery status, the communicationtechnology, or a combination thereof, wherein the soft limit triggerswhen the mobile device begins to fetch, cache, or a combination thereofadditional advertisement data to the memory; and during a period of timebetween the soft limit and the hard limit, transmit a request for theadditional advertisement data over a communication network.
 12. Theapparatus of claim 11, wherein the soft limit is determined by adjustingthe soft limit to be higher based on determining that the battery statusindicates a battery of the mobile device is below a threshold level. 13.The apparatus of claim 11, wherein the soft limit is determined byadjusting the soft limit to be lower based on determining that thecommunication technology is low power consumption communicationtechnology.
 14. The apparatus of claim 13, wherein the low powerconsumption communication technology is a wireless local area networktechnology.
 15. The apparatus of claim 11, wherein the soft limit isdetermined by adjusting the soft limit to be higher based on determiningthat the communication technology is a cellular radio technology.
 16. Anon-transitory computer-readable storage medium for cachingadvertisement data at a mobile device based on a soft limit, carryingone or more sequences of one or more instructions which, when executedby one or more processors, cause an apparatus to at least perform thefollowing steps: caching the advertisement data in a memory of a mobiledevice, wherein the advertisement data is associated with a hard limitthat determines an expiration of the advertisement data; determining abattery status of the mobile device, a communication technology to beused by the mobile device, or a combination thereof; determining a softlimit for the advertisement data based on the battery status, thecommunication technology, or a combination thereof, wherein the softlimit triggers when the mobile device begins to fetch, cache, or acombination thereof additional advertisement data to the memory; andduring a period of time between the soft limit and the hard limit,transmitting a request for the additional advertisement data over acommunication network.
 17. The non-transitory computer-readable storagemedium of claim 16, wherein the soft limit is determined by adjustingthe soft limit to be higher based on determining that the battery statusindicates a battery of the mobile device is below a threshold level. 18.The non-transitory computer-readable storage medium of claim 16, whereinthe soft limit is determined by adjusting the soft limit to be lowerbased on determining that the communication technology is low powerconsumption communication technology.
 19. The non-transitorycomputer-readable storage medium of claim 18, wherein the low powerconsumption communication technology is a wireless local area networktechnology.
 20. The non-transitory computer-readable storage medium ofclaim 16, wherein the soft limit is determined by adjusting the softlimit to be higher based on determining that the communicationtechnology is a cellular radio technology.